home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / ADBPlugin.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  3KB  |  111 lines

  1. /*
  2.      File:        ADBPlugin.h
  3.  
  4.      Version:    Technology:    
  5.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  6.  
  7.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. */
  16. #ifndef __ADBPLUGIN__
  17. #define __ADBPLUGIN__
  18.  
  19. #ifndef __TYPES__
  20. #include <Types.h>
  21. #endif
  22. #ifndef __ADB__
  23. #include <ADB.h>
  24. #endif
  25.  
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29.  
  30. #if PRAGMA_IMPORT_SUPPORTED
  31. #pragma import on
  32. #endif
  33.  
  34. #if PRAGMA_ALIGN_SUPPORTED
  35. #pragma options align=power
  36. /* the following contents can only be used by compilers that support PowerPC struct alignment */
  37.  
  38. #if FOR_SYSTEM8_PREEMPTIVE
  39. /*
  40. ------------------------------------------------------------------------------------
  41.   Calls exported by the Family
  42. ------------------------------------------------------------------------------------
  43. */
  44. extern void ADBFamRequestComplete(OSStatus theStatus);
  45.  
  46. extern void ADBFamAutopollArrived(Byte deviceAddress, const ADBRegisterContents *contents);
  47.  
  48. /*
  49. ------------------------------------------------------------------------------------
  50.   Plugin Dispatch Table
  51. ------------------------------------------------------------------------------------
  52. */
  53. typedef OSStatus (*ADBPluginInitProc)(void );
  54. typedef OSStatus (*ADBPluginSetAutopollDelayProc)(Duration delay);
  55. typedef OSStatus (*ADBPluginGetAutopollDelayProc)(Duration *delay);
  56. typedef OSStatus (*ADBPluginSetAutopollListProc)(UInt16 addressMask);
  57. typedef OSStatus (*ADBPluginGetAutopollListProc)(UInt16 *addressMask);
  58. typedef OSStatus (*ADBPluginAutopollEnableProc)(void );
  59. typedef OSStatus (*ADBPluginAutopollDisableProc)(void );
  60. typedef OSStatus (*ADBPluginResetBusProc)(void );
  61. typedef OSStatus (*ADBPluginFlushProc)(Byte deviceAddress);
  62. typedef OSStatus (*ADBPluginSetRegisterProc)(Byte deviceAddress, Byte registerNumber, const ADBRegisterContents *contents);
  63. typedef OSStatus (*ADBPluginGetRegisterProc)(Byte deviceAddress, Byte registerNumber, ADBRegisterContents *contents);
  64. typedef OSStatus (*ADBPluginSetKeyboardListProc)(UInt16 addressMask);
  65.  
  66. enum {
  67.     kADBPluginVersion            = 0x44332211,
  68.     kADBPluginCurrentVersion    = kADBPluginVersion
  69. };
  70.  
  71. struct ADBPluginHeader {
  72.     UInt32                             version;
  73.     UInt32                             reserved1;
  74.     UInt32                             reserved2;
  75.     UInt32                             reserved3;
  76. };
  77. typedef struct ADBPluginHeader ADBPluginHeader;
  78.  
  79. struct ADBPluginDispatchTable {
  80.     ADBPluginHeader                 header;
  81.     ADBPluginInitProc                 Init;
  82.     ADBPluginSetAutopollDelayProc     SetAutopollDelay;
  83.     ADBPluginGetAutopollDelayProc     GetAutopollDelay;
  84.     ADBPluginSetAutopollListProc     SetAutopollList;
  85.     ADBPluginGetAutopollListProc     GetAutopollList;
  86.     ADBPluginAutopollEnableProc     AutopollEnable;
  87.     ADBPluginAutopollDisableProc     AutopollDisable;
  88.     ADBPluginResetBusProc             ResetBus;
  89.     ADBPluginFlushProc                 Flush;
  90.     ADBPluginSetRegisterProc         SetRegister;
  91.     ADBPluginGetRegisterProc         GetRegister;
  92.     ADBPluginSetKeyboardListProc     SetKeyboardList;
  93. };
  94. typedef struct ADBPluginDispatchTable ADBPluginDispatchTable;
  95.  
  96. #endif
  97.  
  98. #pragma options align=reset
  99. #endif /* PRAGMA_ALIGN_SUPPORTED */
  100.  
  101. #if PRAGMA_IMPORT_SUPPORTED
  102. #pragma import off
  103. #endif
  104.  
  105. #ifdef __cplusplus
  106. }
  107. #endif
  108.  
  109. #endif /* __ADBPLUGIN__ */
  110.  
  111.